One or more aspects relate, in general, to processing within a computing environment, and in particular, to processing of compute instructions within the computing environment.
Compute instructions, such as arithmetic or logic instructions, may perform an arithmetic or logic operation on a plurality of operands, and those operands may be specified in registers, referred to as register operands, or read from memory, referred to as memory operands. To be read from memory, access is to be permitted to the memory locations being read.
In particular, memory may be organized into pages (or other sizes of memory units), and each page includes a range of addresses specifying a plurality of memory locations. The addresses may be virtual addresses, if the environment includes virtual memory, and thus, address translation may be needed. Address translation is used in order to convert a virtual memory address to a physical or real memory address. The translation from a virtual memory address to a physical or real memory address is stored in an entry within a data structure, such as a page table entry. Additionally, the memory locations in a single page of memory typically share a common set of access permissions. Access permissions determine whether an application has privileges to read or write the contents of a memory page.
A portion of memory (e.g., a plurality of memory locations) to be accessed to populate a memory operand may be located anywhere within a memory page, including for example, near the end of a page, spanning a boundary that separates two or more different pages, or extending up to the end of a page without crossing the page boundary. An application attempting to access a portion of memory that spans a page boundary is to have a page table entry (i.e., an address translation, if needed) and access permissions for both pages. If the application has access to the first page but not the second page, a page fault violation occurs when the application attempts to access the second page or perform address translation for the second page. In order to protect system integrity, operating systems are typically strict in not allowing applications to access a page without having the proper access permissions. Thus, operating systems typically prematurely end the offending application in response to a page fault violation.